package com.zshan.clinic.admin.entity.vo.print;

import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.zshan.clinic.admin.entity.medical.rx.RxDrug;
import com.zshan.clinic.admin.entity.medical.rx.RxInfusion;
import com.zshan.clinic.admin.entity.medical.rx.RxTcm;
import com.zshan.clinic.admin.entity.vo.print.rx.RxPrintBase;
import com.zshan.clinic.admin.entity.vo.print.rx.ext.RxExtPrint;
import lombok.Data;

import java.time.LocalDate;
import java.util.List;

/**
 * 处方打印
 * @author lichen
 */
@Data
@JsonTypeInfo(
        use = JsonTypeInfo.Id.NAME,  // 使用字段名称来标识
        property = "rxType",  // 使用 rxType 字段来决定子类类型
        visible = true
)
@JsonSubTypes({
        @JsonSubTypes.Type(value = RxDrug.class, name = "1"),
        @JsonSubTypes.Type(value = RxInfusion.class, name = "2"),
        @JsonSubTypes.Type(value = RxTcm.class, name = "3"),
        @JsonSubTypes.Type(value = RxExtPrint.class, name = "4"),
})
public class ClinicRxPrintVo extends PrintTitleVo {

    /**
     * 最终诊断
     */
    private String diagnosis;

    /**
     *
     */
    private List<RxPrintBase> rxList;


    //--------------补充底部信息------------------

    /**
     * 医生
     */
    private String doctorName;


    /** 完诊日期;2025-07-09 */
    private LocalDate diagnosisDate;

    /**
     * 医生签名，如果有值就显示这个，是个图片；如果没有值就显示doctorName
     */
    private String signature;
}
